'use strict'

module.exports = [
  //此中间件执行后，说明会话验证成功，此后的请求可以通过c.box.user拿到用户数据。
  {
    pre: true,
    middleware: async (c, next) => {
      let token = c.headers.authorization || c.query.token

      if (!token) {
        return c.status(401).send('!token')
      }

      let uinfo = c.service.atok.verify(token)

      if (!uinfo.ok) {
        return c.status(401).send(uinfo.errcode)
      }

      c.box.user = uinfo.data

      await next()
    }
  }
]